"""
   ┌─┐       ┌─┐ + +
┌──┘ ┴───────┘ ┴──┐++
│                 │
│       ───       │++ + + +
███████───███████ │+
│                 │+
│       ─┴─       │
│                 │
└───┐         ┌───┘
    │         │
    │         │   + +
    │         │
    │         └──────────────┐
    │                        │
    │                        ├─┐
    │                        ┌─┘
    │                        │
    └─┐  ┐  ┌───────┬──┐  ┌──┘  + + + +
      │ ─┤ ─┤       │ ─┤ ─┤
      └──┴──┘       └──┴──┘  + + + +
             神兽保佑
            代码无BUG!
"""
import sys

from PyQt5.QtWidgets import QWidget, QGridLayout, QPushButton, QApplication, QLineEdit


class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 创建布局
        grid = QGridLayout()
        # 设置布局
        self.setLayout(grid)
        titleEdit = QLineEdit()
        grid.addWidget(titleEdit, 0, 1)
        names = ['Cls', 'Bck', '', "Close",
                 '7', '8', '9', '/',
                 '4', '5', '6', '*',
                 '1', '2', '3', '-',
                 '0', '.', '=', '+'
                 ]
        positions = [(i, j) for i in range(1, 6) for j in range(0, 4)]
        for position, name in zip(positions, names):
            if name == "":
                continue
            button = QPushButton(name)
            # button.clicked()
            grid.addWidget(button, *position)
        self.move(300, 150)
        self.setWindowTitle("计算器")
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
